package com.tarena.charging.order.mqtt;

import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 注入这个对象到业务 发送生成的消息 比如发送命令开始充电
 */
@Slf4j
@Component
public class MqttProducer {
    @Autowired
    private MqttClient mqttClient;
    //准备一个发送消息的方法 send 告诉设备 使用某个枪 对订单 中的车辆进行充电了
    public boolean send(String topic,String message){
        Boolean success = false;
        try {
            mqttClient.publish(topic,message.getBytes(),0,true);
            success = true;
        } catch (MqttException e) {
            //接入告警系统 1秒钟超过3次失败 告警
            log.error("给EMQX发送消息失败,topic:{},消息:{}",topic,message,e);
        }
        return success;
    }

}
